package com.centsuse.my_redis.service;

import com.centsuse.my_redis.es.entity.DocumentEntity;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;
import java.util.Optional;

/**
 * @author bobo
 */
public interface DocumentService {
    // 保存或更新文档
    DocumentEntity saveDocument(DocumentEntity document);

    // 根据ID删除文档
    void deleteDocumentById(String id);

    // 根据ID查询文档
    Optional<DocumentEntity> findDocumentById(String id);

    // 根据task_id查询文档列表
    List<DocumentEntity> findDocumentsByTaskId(String taskId);

    // 根据file_id查询文档列表
    List<DocumentEntity> findDocumentsByFileId(String fileId);

    // 复合条件查询（示例：根据标题关键词和是否发布状态查询）
    List<DocumentEntity> searchDocuments(String titleKeyword, Boolean isPublished);

    // 更多业务方法...
    Page<DocumentEntity> searchDocuments(String titleKeyword, Boolean isPublished, List<String> sourceSystems,
                                         Pageable pageable);
}